﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace B.S.DataBase.EFCoreServiers.Dtos.Permissions
{
    /// <summary>
    /// 获取菜单权限的树形结构数据传输对象
    /// </summary>
    public class GetMenuPermissionTree
    {

        /// <summary>
        /// 权限的唯一标识符。
        /// 对应数据库中的 'id' 字段，主键，自增长。
        /// </summary>
        public int PermissionId { get; set; }
        /// <summary>
        /// 权限在界面上显示的名称。
        /// 对应数据库中的 'display_name' 字段，非空。
        /// 例如："查看订单"。
        /// </summary>
        public string DisplayName { get; set; }

        /// <summary>
        /// 权限所属的功能模块或类型。
        /// 对应数据库中的 'category' 字段，可为空。
        /// 例如："订单管理"，“任务管理”。
        /// </summary>
        public string Category { get; set; }

        /// <summary>
        /// 权限的对应页面路径  只有顶级权限  也就是菜单权限才有这个字段 按钮级别默认权限为空
        /// 对应数据库中的 'description' 字段，可为空。
        /// </summary>
        public string? Pagepath { get; set; } = string.Empty;

        /// <summary>
        /// 父权限的ID
        /// 如果是顶级权限，则为null。
        /// </summary>
        public int? ParentId { get; set; } // long? 表示可空的长整型
        /// <summary>
        /// 按钮级别权限
        /// </summary>
        public IList<GetMenuPermissionTree> Children { get; set; } = new List<GetMenuPermissionTree>();
    }
}
